package com.woniu.zsd.order.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.woniu.zsd.order.dto.FindUserOrderDto;
import com.woniu.zsd.order.entity.OrderInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu.zsd.order.from.*;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author author
 * @since 2025-03-27
 */
public interface IOrderInfoService extends IService<OrderInfo> {

    Page<OrderInfo> findUserOrder(FindUserOrderFrom fof,Integer userId);

    Page<OrderInfo> findAllOrder(FindAllOrderFrom faf);

    Page<OrderInfo> findWorkOrder(FindWorkOrderFrom fwf,Integer id);

    void userCreatOrder(UserCreatOrderFrom uof,Integer id) throws Exception;

    

    void confirmOrder(String orderNumber,Integer id) throws Exception;

    void cancelOrder(CancelOrderFrom cof) throws Exception;

    void siteAllocationOrder(SiteAllocationOrderFrom sof) throws Exception;

    void workUpdateOrderStatus(String orderNum, Integer id) throws Exception;

    void siteUpdateOrder(String orderNumber) throws Exception;

    void adminUpdateOrder(AdminUpdateOrder auo) throws IOException;

    void workNoOrder(String orderNumber);

    boolean isOrderFinish(Integer userId, Integer siteId);
}
